home *** CD-ROM | disk | FTP | other *** search
/ Champak 54 / Vol 54.iso / games / ultrablo.swf / scripts / __Packages / MochiAd.as
Encoding:
Text File  |  2007-10-01  |  12.6 KB  |  474 lines

  1. class MochiAd
  2. {
  3.    function MochiAd()
  4.    {
  5.    }
  6.    static function debug(s)
  7.    {
  8.       var _loc1_ = _root;
  9.       if(typeof _loc1_._MochiAd_debugText == "undefined")
  10.       {
  11.          _loc1_._MochiAd_debugText = "";
  12.       }
  13.       _loc1_._MochiAd_debugText += s + "\n";
  14.       trace("[MochiAd] " + s);
  15.    }
  16.    static function isNetworkAvailable()
  17.    {
  18.       if(System.security)
  19.       {
  20.          if(System.security.sandboxType == "localWithFile")
  21.          {
  22.             return false;
  23.          }
  24.       }
  25.       return true;
  26.    }
  27.    static function showPreloaderAd(clip, options)
  28.    {
  29.       var _loc1_ = options;
  30.       var _loc2_ = this;
  31.       var optcopy = {};
  32.       if(_loc1_)
  33.       {
  34.          for(var k in _loc1_)
  35.          {
  36.             optcopy[k] = _loc1_[k];
  37.          }
  38.       }
  39.       _loc1_ = optcopy;
  40.       var ad_msec = 6000;
  41.       var ad_timeout = 2000;
  42.       var fadeout_time = 250;
  43.       if(!_loc1_)
  44.       {
  45.          _loc1_ = {};
  46.       }
  47.       if(typeof _loc1_.regpt == "undefined")
  48.       {
  49.          _loc1_.regpt = "o";
  50.       }
  51.       if(typeof _loc1_.method == "undefined")
  52.       {
  53.          _loc1_.method = "showPreloaderAd";
  54.       }
  55.       if(typeof _loc1_.ad_msec != "undefined")
  56.       {
  57.          ad_msec = _loc1_.ad_msec;
  58.          delete _loc1_.ad_msec;
  59.       }
  60.       if(typeof _loc1_.ad_timeout != "undefined")
  61.       {
  62.          ad_timeout = _loc1_.ad_timeout;
  63.          delete _loc1_.ad_timeout;
  64.       }
  65.       if(typeof _loc1_.fadeout_time != "undefined")
  66.       {
  67.          fadeout_time = _loc1_.fadeout_time;
  68.          delete _loc1_.fadeout_time;
  69.       }
  70.       var success = MochiAd.load(clip,_loc1_);
  71.       if(!success)
  72.       {
  73.          return false;
  74.       }
  75.       clip.stop();
  76.       var mc = clip._mochiad;
  77.       var b = clip.getBounds();
  78.       var _loc3_ = 0;
  79.       var h = 0;
  80.       if(typeof _loc1_.res != "undefined")
  81.       {
  82.          var xy = _loc1_.res.split("x");
  83.          _loc3_ = parseFloat(xy[0]);
  84.          h = parseFloat(xy[1]);
  85.       }
  86.       else
  87.       {
  88.          _loc3_ = b.xMax - b.xMin;
  89.          var h = b.yMax - b.yMin;
  90.       }
  91.       if(_loc3_ == 0 || h == 0)
  92.       {
  93.          _loc3_ = Stage.width;
  94.          h = Stage.height;
  95.       }
  96.       mc._x = _loc3_ * 0.5;
  97.       mc._y = h * 0.5;
  98.       var chk = mc.createEmptyMovieClip("_mochiad_wait",3);
  99.       chk._x = _loc3_ * -0.5;
  100.       chk._y = h * -0.5;
  101.       var bar = chk.createEmptyMovieClip("_mochiad_bar",4);
  102.       bar._x = 10;
  103.       bar._y = h - 20;
  104.       var bar_color = 16747008;
  105.       if(typeof _loc1_.color != "undefined")
  106.       {
  107.          bar_color = _loc1_.color;
  108.          delete _loc1_.color;
  109.       }
  110.       var bar_background = 16777161;
  111.       if(typeof _loc1_.background != "undefined")
  112.       {
  113.          bar_background = _loc1_.background;
  114.          delete _loc1_.background;
  115.       }
  116.       var bar_outline = 13994812;
  117.       if(typeof _loc1_.outline != "undefined")
  118.       {
  119.          bar_outline = _loc1_.outline;
  120.          delete _loc1_.outline;
  121.       }
  122.       var backing = bar.createEmptyMovieClip("_outline",1);
  123.       backing.beginFill(bar_background);
  124.       backing.moveTo(0,0);
  125.       backing.lineTo(_loc3_ - 20,0);
  126.       backing.lineTo(_loc3_ - 20,10);
  127.       backing.lineTo(0,10);
  128.       backing.lineTo(0,0);
  129.       backing.endFill();
  130.       var inside = bar.createEmptyMovieClip("_inside",2);
  131.       inside.beginFill(bar_color);
  132.       inside.moveTo(0,0);
  133.       inside.lineTo(_loc3_ - 20,0);
  134.       inside.lineTo(_loc3_ - 20,10);
  135.       inside.lineTo(0,10);
  136.       inside.lineTo(0,0);
  137.       inside.endFill();
  138.       inside._xscale = 0;
  139.       var outline = bar.createEmptyMovieClip("_outline",3);
  140.       outline.lineStyle(0,bar_outline,100);
  141.       outline.moveTo(0,0);
  142.       outline.lineTo(_loc3_ - 20,0);
  143.       outline.lineTo(_loc3_ - 20,10);
  144.       outline.lineTo(0,10);
  145.       outline.lineTo(0,0);
  146.       chk.ad_msec = ad_msec;
  147.       chk.ad_timeout = ad_timeout;
  148.       chk.started = getTimer();
  149.       chk.showing = false;
  150.       chk.last_pcnt = 0;
  151.       chk.fadeout_time = fadeout_time;
  152.       chk.fadeFunction = function()
  153.       {
  154.          var _loc1_ = this;
  155.          var _loc3_ = 100 * (1 - (getTimer() - _loc1_.fadeout_start) / _loc1_.fadeout_time);
  156.          if(_loc3_ > 0)
  157.          {
  158.             _loc1_._parent._alpha = _loc3_;
  159.          }
  160.          else
  161.          {
  162.             var _loc2_ = _loc1_._parent._parent;
  163.             MochiAd.unload(_loc2_);
  164.             delete _loc1_.onEnterFrame;
  165.             _loc2_.play();
  166.          }
  167.       };
  168.       chk.onEnterFrame = function()
  169.       {
  170.          var _loc1_ = this;
  171.          var clip = _loc1_._parent._parent;
  172.          var ad_clip = _loc1_._parent._mochiad_ctr;
  173.          var elapsed = getTimer() - _loc1_.started;
  174.          var _loc3_ = false;
  175.          var clip_total = clip.getBytesTotal();
  176.          var clip_loaded = clip.getBytesLoaded();
  177.          var clip_pcnt = 100 * clip_loaded / clip_total;
  178.          var ad_pcnt = 100 * elapsed / chk.ad_msec;
  179.          var inside = _loc1_._mochiad_bar._inside;
  180.          var _loc2_ = Math.min(100,Math.min(clip_pcnt || 0,ad_pcnt));
  181.          _loc2_ = Math.max(_loc1_.last_pcnt,_loc2_);
  182.          _loc1_.last_pcnt = _loc2_;
  183.          inside._xscale = _loc2_;
  184.          if(!chk.showing)
  185.          {
  186.             var total = ad_clip.getBytesTotal();
  187.             if(total > 0 || typeof total == "undefined")
  188.             {
  189.                chk.showing = true;
  190.                chk.started = getTimer();
  191.             }
  192.             else if(elapsed > chk.ad_timeout)
  193.             {
  194.                _loc3_ = true;
  195.             }
  196.          }
  197.          if(elapsed > chk.ad_msec)
  198.          {
  199.             _loc3_ = true;
  200.          }
  201.          if(clip_total > 0 && clip_loaded >= clip_total && _loc3_)
  202.          {
  203.             _loc1_.fadeout_start = getTimer();
  204.             _loc1_.onEnterFrame = chk.fadeFunction;
  205.          }
  206.       };
  207.    }
  208.    static function showTimedAd(clip, options)
  209.    {
  210.       var _loc1_ = options;
  211.       var _loc2_ = this;
  212.       var _loc3_ = {};
  213.       if(_loc1_)
  214.       {
  215.          for(var k in _loc1_)
  216.          {
  217.             _loc3_[k] = _loc1_[k];
  218.          }
  219.       }
  220.       _loc1_ = _loc3_;
  221.       var ad_msec = 6000;
  222.       var ad_timeout = 2000;
  223.       var fadeout_time = 250;
  224.       if(!_loc1_)
  225.       {
  226.          _loc1_ = {};
  227.       }
  228.       if(typeof _loc1_.regpt == "undefined")
  229.       {
  230.          _loc1_.regpt = "o";
  231.       }
  232.       if(typeof _loc1_.method == "undefined")
  233.       {
  234.          _loc1_.method = "showTimedAd";
  235.       }
  236.       if(typeof _loc1_.ad_msec != "undefined")
  237.       {
  238.          ad_msec = _loc1_.ad_msec;
  239.          delete _loc1_.ad_msec;
  240.       }
  241.       if(typeof _loc1_.ad_timeout != "undefined")
  242.       {
  243.          ad_timeout = _loc1_.ad_timeout;
  244.          delete _loc1_.ad_timeout;
  245.       }
  246.       if(typeof _loc1_.fadeout_time != "undefined")
  247.       {
  248.          fadeout_time = _loc1_.fadeout_time;
  249.          delete _loc1_.fadeout_time;
  250.       }
  251.       var success = MochiAd.load(clip,_loc1_);
  252.       if(!success)
  253.       {
  254.          return false;
  255.       }
  256.       clip.stop();
  257.       var mc = clip._mochiad;
  258.       var b = clip.getBounds();
  259.       var w = 0;
  260.       var h = 0;
  261.       if(typeof _loc1_.res != "undefined")
  262.       {
  263.          var xy = _loc1_.res.split("x");
  264.          w = parseFloat(xy[0]);
  265.          h = parseFloat(xy[1]);
  266.       }
  267.       else
  268.       {
  269.          var w = b.xMax - b.xMin;
  270.          var h = b.yMax - b.yMin;
  271.       }
  272.       if(w == 0 || h == 0)
  273.       {
  274.          w = Stage.width;
  275.          h = Stage.height;
  276.       }
  277.       mc._x = w * 0.5;
  278.       mc._y = h * 0.5;
  279.       var chk = mc.createEmptyMovieClip("_mochiad_wait",3);
  280.       chk.ad_msec = ad_msec;
  281.       chk.ad_timeout = ad_timeout;
  282.       chk.started = getTimer();
  283.       chk.showing = false;
  284.       chk.fadeout_time = fadeout_time;
  285.       chk.fadeFunction = function()
  286.       {
  287.          var _loc1_ = this;
  288.          var _loc3_ = 100 * (1 - (getTimer() - _loc1_.fadeout_start) / _loc1_.fadeout_time);
  289.          if(_loc3_ > 0)
  290.          {
  291.             _loc1_._parent._alpha = _loc3_;
  292.          }
  293.          else
  294.          {
  295.             var _loc2_ = _loc1_._parent._parent;
  296.             MochiAd.unload(_loc2_);
  297.             delete _loc1_.onEnterFrame;
  298.             _loc2_.play();
  299.          }
  300.       };
  301.       chk.onEnterFrame = function()
  302.       {
  303.          var _loc1_ = this;
  304.          var clip = _loc1_._parent._parent;
  305.          var ad_clip = _loc1_._parent._mochiad_ctr;
  306.          var elapsed = getTimer() - _loc1_.started;
  307.          var _loc2_ = false;
  308.          if(!chk.showing)
  309.          {
  310.             var _loc3_ = ad_clip.getBytesTotal();
  311.             if(_loc3_ > 0 || typeof _loc3_ == "undefined")
  312.             {
  313.                chk.showing = true;
  314.                chk.started = getTimer();
  315.             }
  316.             else if(elapsed > chk.ad_timeout)
  317.             {
  318.                _loc2_ = true;
  319.             }
  320.          }
  321.          if(elapsed > chk.ad_msec)
  322.          {
  323.             _loc2_ = true;
  324.          }
  325.          if(_loc2_)
  326.          {
  327.             _loc1_.fadeout_start = getTimer();
  328.             _loc1_.onEnterFrame = _loc1_.fadeFunction;
  329.          }
  330.       };
  331.    }
  332.    static function load(clip, options)
  333.    {
  334.       var _loc1_ = options;
  335.       var optcopy = {};
  336.       if(_loc1_)
  337.       {
  338.          for(var k in _loc1_)
  339.          {
  340.             optcopy[k] = _loc1_[k];
  341.          }
  342.       }
  343.       _loc1_ = optcopy;
  344.       if(typeof clip == "undefined")
  345.       {
  346.          clip = _root;
  347.       }
  348.       if(!MochiAd.isNetworkAvailable())
  349.       {
  350.          return false;
  351.       }
  352.       var MOCHIADS_SERVER = "http://x.mochiads.com/srv/1/";
  353.       var no_menu = false;
  354.       if(clip._mochiad_loaded)
  355.       {
  356.          return false;
  357.       }
  358.       var depth = 10333;
  359.       if(_loc1_.depth)
  360.       {
  361.          depth = _loc1_.depth;
  362.          delete _loc1_.depth;
  363.       }
  364.       var mc = clip.createEmptyMovieClip("_mochiad",depth);
  365.       if(!_loc1_)
  366.       {
  367.          _loc1_ = {};
  368.       }
  369.       if(typeof _loc1_.id == "undefined")
  370.       {
  371.          _loc1_.id = "_UNKNOWN_";
  372.       }
  373.       if(typeof _loc1_.server == "undefined")
  374.       {
  375.          _loc1_.server = MOCHIADS_SERVER;
  376.       }
  377.       if(typeof _loc1_.res == "undefined")
  378.       {
  379.          var b = clip.getBounds();
  380.          var w = Math.floor(b.xMax - b.xMin);
  381.          var h = Math.floor(b.yMax - b.yMin);
  382.          if(w == 0 || h == 0)
  383.          {
  384.             w = Stage.width;
  385.             h = Stage.height;
  386.          }
  387.          _loc1_.res = w + "x" + h;
  388.       }
  389.       _loc1_.server += _loc1_.id;
  390.       delete _loc1_.id;
  391.       if(_loc1_.no_menu)
  392.       {
  393.          no_menu = true;
  394.          delete _loc1_.no_menu;
  395.       }
  396.       clip._mochiad_loaded = true;
  397.       var lv = mc.createEmptyMovieClip("_mochiad_ctr",1);
  398.       for(var k in _loc1_)
  399.       {
  400.          lv[k] = _loc1_[k];
  401.       }
  402.       if(clip._url.indexOf("http") != 0)
  403.       {
  404.          _loc1_.no_page = true;
  405.       }
  406.       if(!no_menu)
  407.       {
  408.          var murl = _loc1_.server + "/";
  409.          var MENU_ITEMS = [["MochiAds : Sponsor this game","sponsor"],["MochiAds : Learn more","about"]];
  410.          var menu = new ContextMenu();
  411.          menu.hideBuiltInItems();
  412.          var _loc2_ = 0;
  413.          while(_loc2_ < MENU_ITEMS.length)
  414.          {
  415.             var _loc3_ = MENU_ITEMS[_loc2_];
  416.             var fn = function(clickURL)
  417.             {
  418.                var _loc1_ = function()
  419.                {
  420.                   getURL(clickURL,"_blank");
  421.                };
  422.                return _loc1_;
  423.             };
  424.             var item = new ContextMenuItem(_loc3_[0],fn(murl + _loc3_[1]));
  425.             menu.customItems.push(item);
  426.             _loc2_ = _loc2_ + 1;
  427.          }
  428.          _root.menu = menu;
  429.       }
  430.       var server = lv.server;
  431.       delete lv.server;
  432.       var hostname = server.split("/")[2].split(":")[0];
  433.       if(System.security)
  434.       {
  435.          if(System.security.allowDomain)
  436.          {
  437.             System.security.allowDomain(hostname);
  438.          }
  439.          if(System.security.allowInsecureDomain)
  440.          {
  441.             System.security.allowInsecureDomain(hostname);
  442.          }
  443.       }
  444.       lv.st = getTimer();
  445.       lv.loadMovie(server + ".swf","POST");
  446.       return true;
  447.    }
  448.    static function unload(clip)
  449.    {
  450.       var _loc1_ = clip;
  451.       if(typeof _loc1_ == "undefined")
  452.       {
  453.          _loc1_ = _root;
  454.       }
  455.       if(!_loc1_._mochiad)
  456.       {
  457.          return false;
  458.       }
  459.       _loc1_._mochiad.removeMovieClip();
  460.       delete _loc1_._mochiad_loaded;
  461.       delete _loc1_._mochiad;
  462.       return true;
  463.    }
  464.    static function main(mc)
  465.    {
  466.       var _loc1_ = mc;
  467.       if(typeof _loc1_ == "undefined")
  468.       {
  469.          _loc1_ = _root;
  470.       }
  471.       MochiAd.showTimedAd(_loc1_,{id:"test"});
  472.    }
  473. }
  474.